<?php

namespace brand\traits;

trait BrandEvent
{

    public function table_init()
    {
        
    }

    public function form_init()
    {
        
    }
    /**
     * 表格设置行数组之前
     */
    public function table_before_set_columns(){}
    /**
     * 表格设置行数组之后
     */
    public function table_after_set_columns($columns){
        return $columns;
    }

    /**
     * 表格构建行数据之后
     * @param $columns
     */
    public function table_after_build($columns)
    {
        return $columns;
    }

    /**
     * 设置搜索默认值
     * @return array
     */
    public function table_search_raws()
    {
    }

    /**
     * 构建搜索之前
     * @param $columns
     * @return mixed
     */
    public function table_search_before_build()
    {
    }

    /**
     * 构建行搜索之后
     * @param $columns
     * @return mixed
     */
    public function table_search_after_build($search_columns)
    {
        return $search_columns;
    }

    /**
     * 构建表单之前
     * @param $raw
     * @return mixed
     */
    public function form_before_build($raw )
    {
        return $raw;
    }

    /**
     * 构建表单之后
     */
    public function form_after_build($columns_arr)
    {
        return $columns_arr;
    }

    public function submit_before_params($params)
    {
        return $params;
    }

    /**
     * 保存提交表单之前
     * @param $params
     * @return mixed
     */
    public function submit_save_before($params)
    {
        return $params;
    }
    /**
     * 保存提交表单之前
     * @param $params
     */
    public function submit_save_after($params,$id)
    {

    }



    /**
     * 构建查询条件之后
     * @param $arrays
     * @return mixed
     */
    public function data_after_build_params($arrays)
    {
        return $arrays;
    }

    /**
     * 构建join之后
     * @param $field
     * @param $joins
     * @return array
     */
    public function data_after_build_join($field, $joins): array
    {

        return [$field,$joins];
    }

    public function data_before_build_join($columns)
    {
        return $columns;
    }

    public function data_before_select($list)
    {
        return $list;
    }

    /**
     * 搜索到之后的数据列表
     * @param $list
     * @return array
     */
    public function data_after_select($count,$list)
    {
        return [$count,$list];
    }


    /**
     * 单条数据更新之前
     * @param $field
     * @param $value
     * @param $pk
     * @param $id
     * @return array
     */
    public function table_before_update_field($field,$value,$pk,$id)
    {
        return [$field,$value,$pk,$id];
    }

    /**
     * 单条数据更新之后
     * @param $field
     * @param $value
     * @param $pk
     * @param $id
     * @return void
     */
    public function table_before_after_field($field,$value,$pk,$id)
    {

    }

    /**
     * 删除之前
     * @param $curdName
     * @param $pk
     * @param $id
     * @return array
     */
    public function delete_before($curdName,$pk,$id)
    {
        return [$pk,$id];
    }

    /**
     * 删除之后
     * @param $curdName
     * @param $pk
     * @param $id
     * @return void
     */
    public function delete_after($curdName,$pk,$id)
    {
        
    }

    /**
     * 获取db名称之前还能
     * @param $name
     * @return mixed
     */
    public function db_name_before($name)
    {
        return $name;
    }

    /**
     * 重置db
     * @param $db
     * @return mixed
     */
    public function db_reset($db)
    {
        return $db;
    }


    /**
     * 搜索之前
     */
    public function data_before_search()
    {

    }






}